﻿Option Strict On
Option Explicit On
Option Infer On

Imports System
Imports System.Linq
Imports Microsoft.VisualBasic.ControlChars
Imports GenDotNet.TemplateSupport
Imports GenDotNet.Task.Common
Imports GenDotNet.TemplateSupport.strings
Imports System.Collections.Generic

Public Class Strings

   Public Shared ReadOnly nl As String = Environment.NewLine
   Public Const nws As String = ""
   Public Const space As String = " "
   Public Const tab As String = Microsoft.VisualBasic.ControlChars.Tab
   ' Used to split strings
   Public Const lf As Char = Microsoft.VisualBasic.ControlChars.Lf

   Public Shared importsString As String = "Imports "
   Public Shared wrapString As String = " _" & nl
   Public Shared commaString As String = ", "
   Public Shared returnString As String
   Public Shared newString As String
   Public Shared meString As String
   Public Shared andAlsoString As String
   Public Shared andString As String
   Public Shared orElseString As String
   Public Shared orString As String
   Public Shared trueString As String
   Public Shared falseString As String
   Public Shared notString As String
   Public Shared nullString As String
   Public Shared throwString As String
   Public Shared baseString As String
   Public Shared getTypeString As String
   Public Shared semiColonString As String

   'Public Shared Function CommaEndingNoWrap(ByVal last As Object, ByVal par As Object) As String
   '   Return CommaEnding(last, par, False)
   'End Function

   'Public Shared Function CommaEnding(ByVal last As Object, ByVal par As Object) As String
   '   Return CommaEnding(last, par, True)
   'End Function

   'Public Shared Function CommaEnding( _
   '      ByVal last As Object, _
   '      ByVal par As Object, _
   '      ByVal wrap As Boolean) _
   '      As String
   '   Return LiteralEnding(commaString, last, par, wrap)
   'End Function

   'Public Shared Function LiteralEndingNoWrap( _
   '          ByVal literal As String, _
   '          ByVal last As Object, _
   '          ByVal par As Object) _
   '          As String
   '   Return LiteralEnding(literal, last, par, False)
   'End Function

   'Public Shared Function LiteralEnding( _
   '         ByVal literal As String, _
   '         ByVal last As Object, _
   '         ByVal par As Object) _
   '         As String
   '   Return LiteralEnding(literal, last, par, True)
   'End Function

   'Public Shared Function LiteralEnding( _
   '         ByVal literal As String, _
   '         ByVal last As Object, _
   '         ByVal par As Object, _
   '         ByVal wrap As Boolean) _
   '         As String
   '   If String.IsNullOrEmpty(literal) Then
   '      Return String.Empty
   '   End If
   '   If last IsNot Nothing AndAlso last IsNot par Then
   '      Return literal & If(wrap, wrapString, String.Empty)
   '   Else
   '      Return String.Empty
   '   End If
   'End Function

End Class
